import socket

# 基于IPV4(AF_INET)创建一个使用TCP协议（SOCK_STREAM）的socket对象 socket_server
with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as socket_server:
    # 在0.0.0.0地址上，对80端口进行监听，在浏览器上通过访问：http://localhost 来触发代码执行
    socket_server.bind(("0.0.0.0", 80))
    socket_server.listen()
    print(f"服务器已启动：http://localhost")

    # 不断的响应网络请求
    while True:
        # 获取联结信息，客户端地址
        connect, address = socket_server.accept()
        with connect:
            print(f"连接来自 {address}")
            request = connect.recv(1024).decode()
            print("请求内容：", request)

            # 自定义返回的html内容
            html = """
            <!DOCTYPE html>
            <html>
            <head><title>使用原生Socket完成响应</title></head>
            <body><h1>Hello World!</h1></body>
            </html>
            """
            # 创建响应字符串，其中响应行、响应头与响应主体间通过 \r\n 来分隔
            response = (
                "HTTP/1.1 200 OK\r\n"
                "Content-Type: text/html; charset=utf-8\r\n"
                f"Content-Length: {len(html.encode())}\r\n"
                "\r\n" +
                html
            )
            # 向客户端返回信息
            connect.sendall(response.encode())